/**
 * Storage存储
 */
import storage from '@system.storage'
export default class Storage {
  constructor() {
    this.data = null
    this.home_tabs_data='home_tabs_data' // 首页tabs
    this.video_tabs_data='video_tabs_data' // 视频tabs
    this.lookHistory='look_history' // 浏览历史
    this.appOrigin='app_origin'  //  应用域名
    this.lastOrigin='lastOrigin' // 上个访问域名
    this.originSet='originSet' //域名设置
    this.userInfo='userInfo' //用户信息
    this.token='token' // token
    this.tokenId='token_id' // tokenId
    this.mobile='mobile' //手机号
    this.uid='uid' // uid
    this.isLogin='isLogin'// 是否登录
    this.deviceId='deviceId' // 设备ID
    this.channel='channel' //渠道
    this.firstShareTip='firstShareTip' //首次分享提示
    this.islookAddDeskTip='islookAddDeskTip' //是否看过加桌指引弹窗 ，任务中心新手任务
    this.firstAritcleDetail='firstAritcleDetail'//是否首次进入文章详情页
    this.vConsoleStatus='vConsoleStatus' //vconsole 展示状态
    this.lastScore='lastScore'//上次青豆总数
    this.isCollectRegId='isCollectRegId' //是否收集了注册id
    this.topLogo='topLOgo' //顶部logo
    this.localApkUrl='localApkUrl'//中青看点apk本地包地址
    this.swichStatusData='swichStatusData' //通知switch 状态
  }
  /**
   * 存储数据
   * @param {String} key 存储key
   * @param {String} value  存储数据
   */
  setItem(key, value) {
    storage.set({
      key: key,
      value:typeof value=='string'?value:JSON.stringify(value),
      success: ()=> {
        // console.log("设置数据成功:",key)
      },
      fail: ()=>{
        // console.log(`设置信息失败${code}`)
      }
    })
  }
  /**
   * 获取存储数据
   * @param {String} key  存储key
   */
  getItem(key,callback,fail) {
    storage.get({
      key: key,
      success: data=> {
        if(data==''){
          callback(data)
        }else{
          try{
            if(data.indexOf(':')==-1){
              callback(data) 
            }else{
              callback(JSON.parse(data))
            }
          }catch(err){
            callback(data)
          }
        }
      },
      fail: err=> {
        console.log(`获取信息失败${key}`)
        fail(err)
      }
    })
  }
  /**
   * 删除存储数据
   * @param {String} key  存储key
   */
  delete(key) {
    storage.delete({
      key: key,
      success: data=> {
        console.log('删除成功',key,data)
      },
      fail: (data, code)=> {
        console.log('删除失败',code)
      }
    })
  }
}
